TOP

SQL UPDATE

YouLibreCalc for Excel logo

SQL UPDATE 说明

UPDATE 指令用于修改表中的现有记录。


UPDATE 语法

UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition
更新表中的条目时要小心!请注意 UPDATE 语句中的 WHERE 表达式。 WHERE 表达式指定要更新哪些记录。 如果省略 WHERE 表达式,表中的所有记录都将被更新!

演示数据库

以下是“Northwind”数据库的“Customers”表中的示例:

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

SQL UPDATE 表示例

以下 SQL 查询使用新联系人和新城市 (City) 更新第一个客户 (CustomerID = 1)。

UPDATE Customers 
SET ContactName = 'Alfred Schmidt', City = 'Frankfurt' 
WHERE CustomerID = 1

“客户”表中的选择现在如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Alfred Schmidt Obere Str. 57 Frankfurt 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Antonio Moreno Mataderos 2312 Mexico D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbkop Christina Berglund Berguvsvagen 8 Lulea S-958 22 Sweden

SQL UPDATE 获取多条记录的示例

WHERE 表达式确定将更新多少记录。

对于国家/地区为“Mexico”的所有记录,以下 SQL 查询会将 ContactName 更改为“Juan”:

UPDATE Customers 
SET ContactName = 'Juan' 
WHERE Country = 'Mexico'

“客户”表中的选择现在如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Alfred Schmidt Obere Str. 57 Frankfurt 12209 Germany
2 Ana Trujillo Emparedados y helados Juan Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Juan Mataderos 2312 Mexico D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbkop Christina Berglund Berguvsvagen 8 Lulea S-958 22 Sweden

使用 SQL Update 时要小心!

更新记录时要小心。如果省略 WHERE 表达式,所有记录都将被更新!
UPDATE Customers 
SET ContactName = 'Juan'

“客户”表中的选择现在如下所示:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Juan Obere Str. 57 Frankfurt 12209 Germany
2 Ana Trujillo Emparedados y helados Juan Avda. de la Constitucion 2222 Mexico D.F. 05021 Mexico
3 Antonio Moreno Taqueria Juan Mataderos 2312 Mexico D.F. 05023 Mexico
4 Around the Horn Juan 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbkop Juan Berguvsvagen 8 Lulea S-958 22 Sweden